##Exerccio 7a
##7.2 O modelo mais simples possvel

##1. Qual a relao do comando 'anova' acima com:
###A mesma, pois quando se tem apenas um modelo em anova(), ele comapra com o modelo nulo.

##2. Qual a relao entre os valores obtidos por estes comandos:
##o Summary fornece  o estimate,que  o valor da mdia em y quando x  0. Residual standard error  o erro associado aos seus dados, ou o sd.

####exerccio 7b
##Construa esse grfico para avaliar a incerteza do modelo para a relao peso do beb (kg)(bwt) ~ tempo de gestao (dias)(gestation)
head(babies)
table(babies$gestation)
babies$gestation[babies$gestation=="999"]<-NA
babies$bwt[babies$bwt=="999"]<-NA
babies$parity[babies$parity=="9"]<-NA
babies$age[babies$age=="99"]<-NA
babies$height[babies$height=="99"]<-NA
babies$weight[babies$weight=="999"]<-NA
babies$smoke[babies$smoke=="9"]<-NA
babies$height<-as.factor(babies$height)
babies$weight<-as.factor(babies$weight)
babies$age<-as.factor(babies$age)
babies$smoke<-as.factor(babies$smoke)
###remover todos os NAs seno o modelo no tem com que plotar
babies<-na.exclude(babies)
unique(babies)

par(mfrow=c(1,1))
plot(bwt~gestation, data=babies)
mod.1<-lm(bwt~gestation, data=babies)
abline(mod.1, col="blue")
summary(mod.1)
anova(mod.1)
coef.mod.1<-coef(mod.1)
coef.mod.1
#####
##SSX : soma dos desvios quadrticos dos valores de xx observados;
##s2: varincia dos valores de yy observados;
##n: nmero de observaes;
##x : valor da varivel preditora para o qual se quer estimar o erro padro;
##x : mdia dos valores de xx observados.

#gestatim, parity, age, height, weight, smoke
###gestation+parity+age+height+weight+smoke,
#Fazendo o modelo
bebe <- read.table("babies.txt", header=T, sep="")
head(bebe)
bebe.novo=na.exclude(bebe)
mod1=lm(bwt~gestation, data = bebe)

#Criando uma seq para fazer o intervalo de confianca
min(bebe.novo$gestation)
max(bebe.novo$gestation)
gestation = seq(from=min(bebe.novo$gestation), to=max(bebe.novo$gestation), length=100)

#Soma dos desvios quadraticos
SST=(sum((bebe.novo$gestation-mean(bebe.novo$gestation))^2))

#Calculo na unha do erro padrao da minha variavel preditora 
erro.padrao=sqrt(var(bebe.novo$gestation)*(1/length(bebe.novo$gestation)+((gestation-mean(bebe.novo$gestation))^2/SST)))

#Valor t-student
valor.t=qt(0.975, length(bebe.novo$gestation)-2)

#Estimando o intervalo de confianca
intervalo = erro.padrao*valor.t

#Fazendo os valores preditos utilizando a sequencia que eu criei
pred=coef(mod1)[1]+coef(mod1)[2]*gestation

#Calculando o limite superior e o inferior
superior = pred+intervalo
inferior = pred-intervalo

#Plotando o grafico
plot(bebe.novo$bwt~bebe.novo$gestation, subset=bebe.novo$gestation<400)
abline(mod1, col="blue")
lines(x = gestation, y = superior)
lines(x = gestation, y = inferior)

##Galileu estava Certo?

#Entrando com os dados
data("pressure")
class(pressure)
head(pressure)
tail(pressure)
str(pressure)
summary(pressure)

p = pressure$pressure

t = pressure$temperature

reg1=lm(p~t)
summary(reg1)

reg2= update(reg1,.~.+I(t^2))
reg2
summary(reg2)

reg3=update(reg2,.~.+I(t^3))
reg3
summary(reg3)

## O modelo 3tem um r quadrado de maior, ou seja explica melhor os dados, e possui um p mto menor que 0.05
#O modelo 3  o melhor de todos,o que tb pode ser visto com as retas no plot.

###Massa de Recm-Nascidos
#####
plot(babies)
mod.1=lm(bwt~gestation*height*weight,data=babies)
anova(mod.1)

mod.2=lm(bwt~gestation*weight+height, data=babies)
anova(mod.1, mod.2)

##mantem mod.1

mod.3=lm(bwt~gestation*weight, data=babies)
anova(mod.1, mod.3)

##mantem mod.1
mod.4=lm(bwt~gestation+weight, data=babies)
anova(mod.1, mod.4)

##mantem mod.4
mod.5=lm(bwt~gestation, data=babies)
anova(mod.4, mod.5)
par(mfrow=c(2,2))
plot(mod.5)
plot(mod.1)
babies["261",]

## O modelo que mais ajustou os dados foi o modelo 5 com gestao explicando mais dados do peso, porm ao analisar o grfico de resduos vemos que os resduos no esto homogeneamente distrbuidos, o que nos leva a pensar que os dados possivelmente no se enquadram em uma regresso linear. A tomada de deciso seria usar outros modelos de outros pacotes estatsticos que aceitam uma heterogeneidade dos resduos ( GLMM).

